﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Smartee.RichText.VisitorAndBuilder
{
    public interface IBuilder
    {
        void StartDocument();

        void StartFontTable();
        int AddFont(string fontFamily, string fontName);
        void EndFontTable();

        void StartColorTable();
        int AddColor(byte red, byte green, byte blue);
        void EndColorTable();

        void StartHeader();
        void EndHeader();
        void StartFooter();
        void EndFooter();

        void StartTable(TextDirection tableDirection, Measurement[] columnsWidth, Justification[] columnsJustification);
        void StartRow();
        void StartCell();
        void EndCell();
        void EndRow();
        void EndTable();

        void StartParagraph(Justification justification, TextDirection textDirection);
        void InsertText(string text);
        void InsertNewLine();
        void StartFootnote();
        void StartFootnote(string identifier);
        void EndFootnote();
        void EndParagraph();

        bool BoldFace { set; }
        bool Underline { set; }
        bool Strike { set; }
        int FontId { set; }
        TextDirection CharacterDirection { set; }

        void InsertPageBreak();
        void InsertPageNumber();

        Document EndDocument();
    }
}
